<template>
  <div>
    <!--
      面板组件分析
       1. 四个部分是可以进行复用的
       2. 确定抽象的技术方案 传递props  传递插槽
       3. 主标题副标题 -> prop  右侧和主题内容 -> slot

      封装思路
       1. 不管可变的地方 搭建一个纯静态的结构出来
       2. 找到可变的地方 替换 prop 和 插槽
       3. 精细化设计prop 插槽
       4. 测试组件是否生效 符合预期
     -->
    <div class="home-panel">
      <div class="container">
        <div class="head">
          <h3>
            {{ title }}<small>{{ subTitle }}</small>
          </h3>
          <!-- 右侧内容区域 -->
          <slot name="right" />
        </div>
        <!-- 主体内容区域 -->
        <slot name="main" />
      </div>
    </div>
  </div>
</template>

<script>
// 封装组件分类
// 1. 纯展示类组件
// 如何抽象props和插槽
// props: 纯数据 一般直接通过js内置类型进行表达  布尔 number 数组...
// slot: 模板 template 区分默认插槽和具名插槽  如果插槽只有一个设计为默认即可 如果有多个并且有明确的功能区域 设计具名插槽

// 2. 重新认识组件
// 别把组件限制到父子通信里面去 以组件本身作为一个主体去设计 我来决定你可以传递什么东西给我

// 3. 有没有封装一些组件呀？

export default {
  name: 'home-pannel',
  props: {
    title: {
      type: String
    },
    subTitle: {
      type: String
    }
  }
}
</script>

<style scoped lang='less'>
.home-panel {
  background-color: #fff;
  .head {
    padding: 40px 0;
    display: flex;
    align-items: flex-end;
    h3 {
      flex: 1;
      font-size: 32px;
      font-weight: normal;
      margin-left: 6px;
      height: 35px;
      line-height: 35px;
      small {
        font-size: 16px;
        color: #999;
        margin-left: 20px;
      }
    }
  }
}
</style>
